package com.ruoyi.student.domain;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;


@Data
@TableName("t_student_base_info")
public class StudentBaseInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 姓名
     */
    @Excel(name = "姓名")
    private String name;

    /**
     * 学号
     */
    @Excel(name = "学号")
    private String code;

    /**
     * 考生号
     */
    @Excel(name = "考生号")
    private String examineeNumber;

    /**
     * 性别
     */
    @Excel(name = "性别")
    private String sex;

    /**
     * 出生日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthday;

    /**
     * 民族
     */
    @Excel(name = "民族")
    private String nation;

    /**
     * 政治面貌
     */
    @Excel(name = "政治面貌")
    private String politicalStatus;

    /**
     * 生源所在地
     */
    @Excel(name = "生源所在地")
    private String source;

    /**
     * 生源所在地全称
     */
    @Excel(name = "生源所在地全称")
    private String sourceFullName;

    /**
     * 身份证号
     */
    @Excel(name = "身份证号")
    private String idNumber;

    /**
     * 手机号
     */
    @Excel(name = "手机号")
    private String phoneNumber;

    /**
     * 校区
     */
    @Excel(name = "校区")
    private String campus;

    /**
     * 年级
     */
    @Excel(name = "年级")
    private String grade;

    /**
     * 系别
     */
    @Excel(name = "系别")
    private String department;

    /**
     * 专业
     */
    @Excel(name = "专业")
    private String major;

    /**
     * 专业方向
     */
    @Excel(name = "专业方向")
    private String majorDirection;

    /**
     * 学制
     */
    @Excel(name = "学制")
    private String studyTime;

    /**
     * 班号
     */
    @Excel(name = "班号")
    private Integer classNum;

    /**
     * 学籍状态
     */
    @Excel(name = "学籍状态")
    private String studyState;

    /**
     * 辅导员工号
     */
    @Excel(name = "辅导员工号")
    private String counsellorCode;

    /**
     * 毕业年份
     */
    @Excel(name = "毕业年份")
    private String graduationYear;

    /**
     * 入学时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入学时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date enterTime;

    /**
     * 离校时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "离校时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date graduateTime;

    /**
     * 组织
     */
    @Excel(name = "总支")
    private String organization;

    /**
     * 困难类别（困难|不困难）
     */
    @Excel(name = "困难类别", readConverterExp = "困=难|不困难")
    private String difficulty;

    /**
     * 微信openid
     */
    @Excel(name = "微信openid")
    private String weixinOpenid;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getCode() {
        return code;
    }

    public void setExamineeNumber(String examineeNumber) {
        this.examineeNumber = examineeNumber;
    }

    public String getExamineeNumber() {
        return examineeNumber;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getSex() {
        return sex;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setNation(String nation) {
        this.nation = nation;
    }

    public String getNation() {
        return nation;
    }

    public void setPoliticalStatus(String politicalStatus) {
        this.politicalStatus = politicalStatus;
    }

    public String getPoliticalStatus() {
        return politicalStatus;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public String getSource() {
        return source;
    }

    public void setSourceFullName(String sourceFullName) {
        this.sourceFullName = sourceFullName;
    }

    public String getSourceFullName() {
        return sourceFullName;
    }

    public void setIdNumber(String idNumber) {
        this.idNumber = idNumber;
    }

    public String getIdNumber() {
        return idNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setCampus(String campus) {
        this.campus = campus;
    }

    public String getCampus() {
        return campus;
    }

    public void setGrade(String grade) {
        this.grade = grade;
    }

    public String getGrade() {
        return grade;
    }

    public void setDepartment(String department) {
        this.department = department;
    }

    public String getDepartment() {
        return department;
    }

    public void setMajor(String major) {
        this.major = major;
    }

    public String getMajor() {
        return major;
    }

    public void setMajorDirection(String majorDirection) {
        this.majorDirection = majorDirection;
    }

    public String getMajorDirection() {
        return majorDirection;
    }

    public void setStudyTime(String studyTime) {
        this.studyTime = studyTime;
    }

    public String getStudyTime() {
        return studyTime;
    }

    public void setClassNum(Integer classNum) {
        this.classNum = classNum;
    }

    public Integer getClassNum() {
        return classNum;
    }

    public void setStudyState(String studyState) {
        this.studyState = studyState;
    }

    public String getStudyState() {
        return studyState;
    }

    public void setCounsellorCode(String counsellorCode) {
        this.counsellorCode = counsellorCode;
    }

    public String getCounsellorCode() {
        return counsellorCode;
    }

    public void setGraduationYear(String graduationYear) {
        this.graduationYear = graduationYear;
    }

    public String getGraduationYear() {
        return graduationYear;
    }

    public void setEnterTime(Date enterTime) {
        this.enterTime = enterTime;
    }

    public Date getEnterTime() {
        return enterTime;
    }

    public void setGraduateTime(Date graduateTime) {
        this.graduateTime = graduateTime;
    }

    public Date getGraduateTime() {
        return graduateTime;
    }

    public void setOrganization(String organization) {
        this.organization = organization;
    }

    public String getOrganization() {
        return organization;
    }

    public void setDifficulty(String difficulty) {
        this.difficulty = difficulty;
    }

    public String getDifficulty() {
        return difficulty;
    }

    public void setWeixinOpenid(String weixinOpenid) {
        this.weixinOpenid = weixinOpenid;
    }

    public String getWeixinOpenid() {
        return weixinOpenid;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getDelFlag() {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("name", getName())
                .append("code", getCode())
                .append("examineeNumber", getExamineeNumber())
                .append("sex", getSex())
                .append("birthday", getBirthday())
                .append("nation", getNation())
                .append("politicalStatus", getPoliticalStatus())
                .append("source", getSource())
                .append("idNumber", getIdNumber())
                .append("phoneNumber", getPhoneNumber())
                .append("campus", getCampus())
                .append("grade", getGrade())
                .append("department", getDepartment())
                .append("major", getMajor())
                .append("majorDirection", getMajorDirection())
                .append("studyTime", getStudyTime())
                .append("classNum", getClassNum())
                .append("studyState", getStudyState())
                .append("counsellorCode", getCounsellorCode())
                .append("graduationYear", getGraduationYear())
                .append("enterTime", getEnterTime())
                .append("graduateTime", getGraduateTime())
                .append("organization", getOrganization())
                .append("difficulty", getDifficulty())
                .append("weixinOpenid", getWeixinOpenid())
                .append("remark", getRemark())
                .append("delFlag", getDelFlag())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
